echo 1.编译java源文件,生成.class字节码文件,javah当遇到以 '\@' 字符，它就会把该字符后的文件所列出的所有java类文件的JNI方法转化为C\C++头文件
echo 在java源文件中，如果用package指定了包名，则在javac在生成class文件时会自动在-d 选项后文件夹下创建包相关文件夹，否则在-d 选项后文件夹下直接生成class文件

echo "java源文件:"
cat src.txt
echo " "
CLASSES=classes
JNIDIR=jni
CLASSNAME=`cat classname.txt`
mkdir -p $CLASSES
javac -d classes @src.txt
if [ $? != 0 ];then
	exit 0
fi
echo 2.根据class字节码文件生成JNI层头文件,生成的头文件名=包名+类名.h,也可以通过-o参数指定生成头文件名称
echo "java类名:"
cat classname.txt
echo " "
javah -d jni -classpath $CLASSES -jni @classname.txt
javah -o jni/$CLASSNAME.h -classpath $CLASSES -jni @classname.txt
if [ $? != 0 ];then
	exit 0
fi
echo 3.生成动态库
echo " "
gcc -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -fPIC -shared $JNIDIR/$CLASSNAME.c -o lib$CLASSNAME.so 
if [ $? != 0 ];then
	exit 0
fi
echo 4.运行程序.如果没有将动态库拷贝到本地库搜索目录下，执行java命令，可通过添加系统属性 java.library.path 来指定动态库的目录
echo " "
java -Djava.library.path=. -classpath $CLASSES $CLASSNAME

